package cn.wuyi.common.context;

public class ContextHolder {
	/**
	 * 线程化的属性文件处理器。
	 */
	private static ThreadLocal<Context> configHolder = new InheritableThreadLocal<Context>() {
		protected Context childValue(Context context) {
			Context newContext = null;
			if (context != null)
				newContext = context.clone();

			return newContext;
		}
	};

	/**
	 * 服务的绝对路径
	 */
	public static String serverAbsolutePath;

	/**
	 * 得到context。
	 * 
	 * @return 上下文信息
	 */
	public static Context getContext() {
		if (configHolder.get() == null) {
			configHolder.set(new Context());
		}
		return configHolder.get();
	}

	/**
	 * 清楚context。
	 */
	public static void clearContext() {
		configHolder.set(null);
	}

	/**
	 * 根据配置属性，创建一个context对象。
	 * 
	 * @param config
	 */
	public static void setContext(Context config) {
		configHolder.set(config);
	}
}
